﻿using System;
using System.Runtime.Serialization;

namespace Unis.Framework.Core.Exceptions
{
    /// <summary>
    /// 作用：表示应用程序执行过程中发生的异常
    /// </summary>
    /// <remarks>
    /// 作者：王强
    /// 日期：2016年11月10日
    /// </remarks>
    [Serializable]
    public class UnisException : Exception
    {
        /// <summary>
        /// 初始化一个新的异常对象
        /// </summary>
        public UnisException()
        {
        }

        /// <summary>
        /// 初始化一个新的异常对象，附带异常信息
        /// </summary>
        /// <param name="message">异常信息</param>
        public UnisException(string message)
            : base(message)
        {
        }

        /// <summary>
        /// 初始化一个新的异常对象，附带异常信息
        /// </summary>
        /// <param name="messageFormat">异常信息的格式化结构</param>
        /// <param name="args">不定参数</param>
        public UnisException(string messageFormat, params object[] args)
            : base(string.Format(messageFormat, args))
        {
        }

        /// <summary>
        ///  初始化一个新的异常对象，附带可序列化的异常数据
        /// </summary>
        /// <param name="info">可序列化的异常信息</param>
        /// <param name="context">上下文对象</param>
        protected UnisException(SerializationInfo
            info, StreamingContext context)
            : base(info, context)
        {
        }

        /// <summary>
        ///  初始化一个新的异常对象，附带异常数据
        /// </summary>
        /// <param name="message">异常信息</param>
        /// <param name="innerException">内部异常信息</param>
        public UnisException(string message, Exception innerException)
            : base(message, innerException)
        {
        }
    }
}
